package com.meituan.sdk.model.ddzhkh.clubactivity.clubactivityClubActivitySync;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 俱乐部活动同步
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/clubactivity/club/activity/sync",
    businessId = 59,
    apiVersion = "10004",
    apiName = "clubactivity_club_activity_sync",
    needAuth = true
)
public class ClubactivityClubActivitySyncRequest implements MeituanRequest<ClubactivityClubActivitySyncResponse> {
    /**
    * <p data-diff-id="ct-diff-id-b77547ef-08f1-438d-a6d1-2af8ee61b749">俱乐部id</p>
    */
    @NotBlank(message = "clubId不能为空")
    @SerializedName("clubId")
    private String clubId;
    /**
    * <p data-diff-id="ct-diff-id-dd1a8dff-3a92-4538-a533-60cd8dd64118">操作类型，1-新建，2-更新</p>
    */
    @NotNull(message = "operation不能为空")
    @SerializedName("operation")
    private Integer operation;
    /**
    * <p data-diff-id="ct-diff-id-eae6404f-7c41-4471-91f2-6d39cfe919c8">活动信息,一批最多5个，修改时按需传入待更新信息</p>
    */
    @NotEmpty(message = "activities不能为空")
    @SerializedName("activities")
    private List<ThirdPartySyncActivityActivityDTO> activities;

    public String getClubId() {
        return clubId;
    }
    public void setClubId(String clubId) {
        this.clubId = clubId;
    }
    public Integer getOperation() {
        return operation;
    }
    public void setOperation(Integer operation) {
        this.operation = operation;
    }
    public List<ThirdPartySyncActivityActivityDTO> getActivities() {
        return activities;
    }
    public void setActivities(List<ThirdPartySyncActivityActivityDTO> activities) {
        this.activities = activities;
    }


    @Override
    public MeituanResponse<ClubactivityClubActivitySyncResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<ClubactivityClubActivitySyncResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "ClubactivityClubActivitySyncRequest{" + "clubId=" + clubId + "," + "operation=" + operation + "," + "activities=" + activities + "}";
    }
}
